/**
 * 身份验证相关的工具函数
 */

// 存储键名
const TOKEN_KEY = 'token'
const USER_PHONE_KEY = 'userPhone'
const USER_ID_KEY = 'userId'

/**
 * 保存用户登录信息
 * @param {Object} data - 用户数据对象
 * @param {string} data.token - 用户令牌
 * @param {string} data.phone - 用户手机号
 * @param {string} data.userId - 用户ID
 */
export function saveUserInfo(data) {
  if (data.token) {
    uni.setStorageSync(TOKEN_KEY, data.token)
  }
  
  if (data.phone) {
    uni.setStorageSync(USER_PHONE_KEY, data.phone)
  }
  
  if (data.userId) {
    uni.setStorageSync(USER_ID_KEY, data.userId)
  }
}

/**
 * 获取用户信息
 * @returns {Object} 用户信息对象
 */
export function getUserInfo() {
  return {
    token: uni.getStorageSync(TOKEN_KEY) || '',
    phone: uni.getStorageSync(USER_PHONE_KEY) || '',
    userId: uni.getStorageSync(USER_ID_KEY) || ''
  }
}

/**
 * 获取用户令牌
 * @returns {string} 用户令牌
 */
export function getToken() {
  return uni.getStorageSync(TOKEN_KEY) || ''
}

/**
 * 检查用户是否已登录
 * @returns {boolean} 是否已登录
 */
export function isLoggedIn() {
  return !!getToken()
}

/**
 * 清除用户登录信息（退出登录）
 */
export function clearUserInfo() {
  uni.removeStorageSync(TOKEN_KEY)
  uni.removeStorageSync(USER_PHONE_KEY)
  uni.removeStorageSync(USER_ID_KEY)
}

/**
 * 格式化手机号 (例如：138****8888)
 * @param {string} phone - 手机号
 * @returns {string} 格式化后的手机号
 */
export function formatPhone(phone) {
  if (!phone || phone.length !== 11) return phone
  return phone.substring(0, 3) + '****' + phone.substring(7)
}